﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Data;
using System.Configuration;
using System.Web.Security;
using System.Web.UI.WebControls.WebParts;
using AjaxControlToolkit;

namespace CityGames
{
    public partial class Home : System.Web.UI.Page
    {
        private DataSet dsNoticias;
        private ENNoticia enNoticia;
        private Socio enSocio;
        private Juego enJuego;
        private TabContainer tbcDynamic;
        
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                dsNoticias = new DataSet();
                enNoticia = new ENNoticia();
                enSocio = new Socio();
                enJuego = new Juego();

                
                        DataSet ds = enNoticia.ObtenerXNoticias(5);
                       
                        foreach (DataRow dr in ds.Tables[0].Rows)
                        {
                            string headerAcor = "<div id='imgBar'>" + dr["titulo"] + "</div>";
                            
                            string contenidoAcor;
                            contenidoAcor = "<table>";
                                contenidoAcor += "<tr>";
                            if(dr["juego"].ToString() != "")
                            {
                                    contenidoAcor += "<td>";
                                        contenidoAcor += "<div class='linkJuegoBusqueda'>";
                                            contenidoAcor += "<a href='Juego.aspx?juego=" + dr["juego"] + "&plataforma=" + dr["plataforma"] + "'>";
                                                contenidoAcor += dr["juego"] + " para " + dr["plataforma"];
                                            contenidoAcor += "</a>";
                                        contenidoAcor += "</div>";
                                    contenidoAcor += "</td>";
                            }
                                    contenidoAcor += "<td>";
                                        contenidoAcor += dr["subtitulo"] + "<a href=\"/Noticia.aspx?id=" + dr["id"] + "\" class=\"masinfo\">" + " [+]" + "</a>";
                                    contenidoAcor += "</td>";
                                    contenidoAcor += "<td>";
                                        contenidoAcor += "<img src=\"ImagenListaNoticia/" + dr["id"] + ".jpg\" width=\"380\" height=\"90\" class=\"fotoLista\" />";
                                    contenidoAcor += "</td>";
                                contenidoAcor += "</tr>";
                            contenidoAcor += "</table>";

                            AccordionPane nameAccordion = new AccordionPane();
                            nameAccordion.ID = "ap" + dr["id"];
                            nameAccordion.HeaderContainer.Controls.Add(new LiteralControl(headerAcor));
                            nameAccordion.ContentContainer.Controls.Add(new LiteralControl(contenidoAcor));
                            acc1.Panes.Add(nameAccordion);  
                        }

                    //codigo para Crear los tres tabs de juegos top, ultimos y proximos

                        CreateTabs();

                        DataSet dsTopGames = enJuego.ObtenerXTopGames();
                        FillTab(dsTopGames,"top",0);
                    
                        DataSet dsUltJuegos = enJuego.ObtenerXUltimosLanzamientos();
                        FillTab(dsUltJuegos,"ultimos",1);
                    
                        DataSet dsProxJuegos = enJuego.ObtenerXProximosLanzamientos();
                        FillTab(dsProxJuegos,"proximos",2);

                        PlaceHolder1.Controls.Add(tbcDynamic);
            }
            catch (Exception ex)
            {
                MyMessageBoxInfo.Show(MyMessageBox.MessageType.Error, ex.ToString(), "ERROR", 200, 600);
            }
        }

        public void CreateTabs()
        {
            tbcDynamic = new TabContainer();
            int i;
            for (i=0; i<3; i++)
            {
                TabPanel tabPanel = new TabPanel();
                if (i == 0)
                    tabPanel.HeaderText = "Top Juegos Valorados";
                if (i == 1)
                    tabPanel.HeaderText = "Ultimos Lanzamientos";
                if (i == 2)
                    tabPanel.HeaderText = "Proximos Lanzamientos";

                tabPanel.ID = "tabPanel" + i.ToString();
                //tabPanel.BackColor = System.Drawing.Color.BlueViolet;
                tbcDynamic.Tabs.Add(tabPanel); 
            }
        }

        public void FillTab(DataSet ds, string tipoTab, int numTab)
        {
            int j = 1;
            
            Table tb1 = new Table();
                
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                TableRow tr1 = new TableRow();
                TableCell tc1 = new TableCell();
                TableCell tc2 = new TableCell();

                HyperLink lbJuego = new HyperLink();
                lbJuego.CssClass = "colorTabs";

                lbJuego.ID = "lbJuego" + j.ToString();
                lbJuego.Text = (j) + ". " + dr["Nombre"] + "-" + dr["Plataforma"] + ".";
                lbJuego.Font.Bold = true;
                lbJuego.NavigateUrl = "Juego.aspx?juego=" + dr["Nombre"] + "&plataforma=" + dr["Plataforma"];
                tc1.Controls.Add(lbJuego);
                tc1.Width = 450;

                Label lbDato = new Label();
                lbJuego.CssClass = "colorTabs";
                
                lbDato.ID = "lbDato" + j.ToString();
                if (tipoTab == "top")
                        lbDato.Text = dr["Puntuacion"].ToString();
                    else
                        lbDato.Text = DateTime.Parse(dr["FechaLanzamiento"].ToString()).ToLongDateString();
                tc2.Controls.Add(lbDato);

                tr1.Cells.Add(tc1);
                tr1.Cells.Add(tc2);
                tb1.Rows.Add(tr1);                    
                j++;
            }
                tbcDynamic.Tabs[numTab].Controls.Add(tb1);
                tbcDynamic.BorderStyle = BorderStyle.Groove;
        }
    }
}